error_functions.o: lib/error_functions.c lib/error_functions.h lib/tlpi_hdr.h
	gcc -g -c lib/error_functions.c
get_num.o: lib/get_num.c lib/get_num.h
	gcc -g -c lib/get_num.c 

copy: error_functions.o get_num.o
	gcc -g fileio/copy.c error_functions.o get_num.o

seek_io: error_functions.o get_num.o
	gcc -g fileio/seek_io.c error_functions.o get_num.o

check_password: error_functions.o get_num.o
	gcc -g users_groups/check_password.c error_functions.o get_num.o -lcrypt

ugid_functions.o: users_groups/ugid_functions.c users_groups/ugid_functions.h
	gcc -g -c users_groups/ugid_functions.c

idshow: error_functions.o get_num.o ugid_functions.o
	gcc -g proccred/idshow.c error_functions.o get_num.o ugid_functions.o

demo_inotify: error_functions.o get_num.o
	gcc -g inotify/demo_inotify.c error_functions.o get_num.o

ouch: error_functions.o get_num.o
	gcc -g signals/ouch.c error_functions.o get_num.o

intquit: error_functions.o get_num.o
	gcc -g signals/intquit.c error_functions.o get_num.o

t_kill: error_functions.o get_num.o
	gcc -g signals/t_kill.c error_functions.o get_num.o

sig_sender: error_functions.o get_num.o
	gcc -o s.out -g signals/sig_sender.c error_functions.o get_num.o

sig_receiver: error_functions.o get_num.o
	gcc -o r.out -g signals/sig_receiver.c error_functions.o get_num.o

nonreentrant: error_functions.o get_num.o
	gcc -g signals/nonreentrant.c error_functions.o get_num.o -lcrypt

sigmask_loginjmp: error_functions.o get_num.o
	gcc -g signals/sigmask_loginjmp.c error_functions.o get_num.o

t_sigalstack: error_functions.o get_num.o
	gcc -g signals/t_sigalstack.c error_functions.o get_num.o

t_fork: error_functions.o get_num.o
	gcc -g procexec/t_fork.c error_functions.o get_num.o

fork_file_sharing: error_functions.o get_num.o
	gcc -g procexec/fork_file_sharing.c error_functions.o get_num.o

fork_whos_on_first: error_functions.o get_num.o 
	gcc -g procexec/fork_whos_on_first.c error_functions.o get_num.o

exit_handlers: error_functions.o get_num.o
	gcc -g procexec/exit_handlers.c error_functions.o get_num.o

fork_stdio_buf: error_functions.o get_num.o
	gcc -g memalloc/fork_stdio_buf.c error_functions.o get_num.o

curr_time.o: time/curr_time.c time/curr_time.h
	gcc -g -c time/curr_time.c

multi_wait: error_functions.o get_num.o curr_time.o
	gcc -g procexec/multi_wait.c error_functions.o get_num.o curr_time.o

print_wait_status.o: procexec/print_wait_status.c procexec/print_wait_status.h
	gcc -g -c procexec/print_wait_status.c
child_status: error_functions.o get_num.o print_wait_status.o
	gcc -g procexec/child_status.c error_functions.o get_num.o print_wait_status.o

multi_sigchld: error_functions.o get_num.o curr_time.o print_wait_status.o
	gcc -g procexec/multi_sigchld.c error_functions.o get_num.o curr_time.o print_wait_status.o

clean: 
	rm -rf *.out
	rm -rf *.o

%:
	echo "success"